function getCookie(name) {
    var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
    if(arr=document.cookie.match(reg))
        return unescape(arr[2]);
    else
        return null;
}

function setCookie(name,value) {
    var day = 30;
    setCookie(name,value,day);
}

function removeCookie(name){
    setCookie(name,'',0);
}

function setCookie(name,value,day){
    var exp = new Date();
    exp.setTime(exp.getTime() + day*24*60*60*1000);
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString()+";path=/";
}

/**
 * 加法运算，避免数据相加小数点后产生多位数和计算精度损失。
 *
 * @param num1加数1 | num2加数2
 */
function numAdd(num1, num2) {
    var baseNum, baseNum1, baseNum2;
    try {
        baseNum1 = num1.toString().split(".")[1].length;
    } catch (e) {
        baseNum1 = 0;
    }
    try {
        baseNum2 = num2.toString().split(".")[1].length;
    } catch (e) {
        baseNum2 = 0;
    }
    baseNum = Math.pow(10, Math.max(baseNum1, baseNum2));
    return (num1 * baseNum + num2 * baseNum) / baseNum;
};

function formatPriceNumber(priceNum){
    if((priceNum+"").indexOf(".") > -1){
        return new Number(priceNum).toFixed(2);
    }else{
        return priceNum;
    }
}

//设置值
function setLocalStorage(name,value){
    window.localStorage.setItem(name,value);
}
//取值
function getLocalStorage(name){
    return window.localStorage.getItem(name) || '';
}
//移除值
function removeLocalStorage(name){
    window.localStorage.removeItem(name);
}
//移除所有值
function removeAllLocalStorage(){
    window.localStorage.clear();
}

//设置setLocalStorage 变量 json
function setJsonlocals(name,key,value){
    var datas = getLocalStorage(name)||'{}',
        json = JSON.parse(datas);//eval("("+datas+")");
    json[key]=value;
    setLocalStorage(name,JSON.stringify(json));
}
//根据LocalStorage的key 取出单个值
function getJsonlocals(name,key){
    var datas = getLocalStorage(name)||'{}',
        json=JSON.parse(datas);
    return json[key];
}
//删除json对象单个值
function removeJsonLocal(name,keys){
    var datas = getLocalStorage(name)||'{}',
        json =JSON.parse(datas),
        args = keys.split(',');
    for(var i=0;i<args.length;i++){
        delete json[args[i]];
    }
    var jsonstr = JSON.stringify(json);
    setLocalStorage(name,jsonstr);
}
//根据LocalStorage的key 取出所有值json对像
function getJsonAllllocals(name){
    var datas = getLocalStorage(name)||'{}';
    json=JSON.parse(datas);
    return json;
}

function toast(title){
    $('.pop_ts').html(title).show();
    self.setInterval(function(){$(".pop_ts").hide();}, 1000);
}


// 对Date的扩展，将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符，
// 年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
// 例子：
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
// (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18
Date.prototype.Format = function (fmt) { //author: meizz
    var o = {
        "M+": this.getMonth() + 1, //月份
        "d+": this.getDate(), //日
        "h+": this.getHours(), //小时
        "m+": this.getMinutes(), //分
        "s+": this.getSeconds(), //秒
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度
        "S": this.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}
/**
 * 减法运算，避免数据相减小数点后产生多位数和计算精度损失。
 *
 * @param num1被减数 | num2减数
 */
function numSub(num1, num2) {
    var baseNum, baseNum1, baseNum2;
    var precision;// 精度
    try {
        baseNum1 = num1.toString().split(".")[1].length;
    } catch (e) {
        baseNum1 = 0;
    }
    try {
        baseNum2 = num2.toString().split(".")[1].length;
    } catch (e) {
        baseNum2 = 0;
    }
    baseNum = Math.pow(10, Math.max(baseNum1, baseNum2));
    precision = (baseNum1 >= baseNum2) ? baseNum1 : baseNum2;
    return ((num1 * baseNum - num2 * baseNum) / baseNum).toFixed(precision);
};
/**
 * 乘法运算，避免数据相乘小数点后产生多位数和计算精度损失。
 *
 * @param num1被乘数 | num2乘数
 */
function numMulti(num1, num2) {
    var baseNum = 0;
    try {
        baseNum += num1.toString().split(".")[1].length;
    } catch (e) {
    }
    try {
        baseNum += num2.toString().split(".")[1].length;
    } catch (e) {
    }
    return Number(num1.toString().replace(".", "")) * Number(num2.toString().replace(".", "")) / Math.pow(10, baseNum);
};
/**
 * 除法运算，避免数据相除小数点后产生多位数和计算精度损失。
 *
 * @param num1被除数 | num2除数
 */
function numDiv(num1, num2) {
    var baseNum1 = 0, baseNum2 = 0;
    var baseNum3, baseNum4;
    try {
        baseNum1 = num1.toString().split(".")[1].length;
    } catch (e) {
        baseNum1 = 0;
    }
    try {
        baseNum2 = num2.toString().split(".")[1].length;
    } catch (e) {
        baseNum2 = 0;
    }
    with (Math) {
        baseNum3 = Number(num1.toString().replace(".", ""));
        baseNum4 = Number(num2.toString().replace(".", ""));
        return (baseNum3 / baseNum4) * pow(10, baseNum2 - baseNum1);
    }
};


function redirectNeedLogin(redirectUrl){
    var url;
    if(isLogin()){
        url = redirectUrl;
    }else{
        url = 'daojia://log_in?reserve=' + encodeURIComponent(redirectUrl);
    }
    window.location.href = url;
}

function isLogin(){
    var uid = getCookie('uid'),
        mobile = getCookie('mobile');
    if(!uid || !mobile){
        return false;
    }else{
        return true;
    }
}

function logintip(encodePhone, redirectUrl){
    if(encodePhone){
        var u = navigator.userAgent;
        if(!!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)){ //ios终端
            encodePhone = decodeURIComponent(encodePhone);
        }
        getLoginInfo(encodePhone, decodeURIComponent(redirectUrl));
    }
}

function getLoginInfo(encodePhone, redirectUrl){
    $.ajax({
        url: '/api/user/common/getuserinfo',
        type: "POST",
        data: {
            ecm: encodePhone
        },
        dataType: 'json',
        timeout: 5000,
        success: function(result){
            if(result.code == 0){
                var userInfo = result.data,
                    uid = userInfo.uid,
                    mobile = userInfo.mobile;
                if(uid && mobile){
                    setCookie("uid", uid);
                    setCookie("mobile", mobile);
                    window.location.href = redirectUrl;
                }else{
                    alert('获取用户信息异常');
                }
            }else{
                alert('获取用户信息异常');
            }
        },
        error: function(xhr, type){
            alert('获取用户信息异常');
        }
    });
}